package com.wang.system.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.wang.entity.model.SysUserModel;
import com.wang.entity.system.SysUser;
import com.wang.entity.vo.SysUserVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * @Author wang
 * @Date 2024/9/22 0:27
 * @PackageName:com.wang.system.mapper
 * @ClassName: SysUserMapper
 * @Description: TODO
 * @Version 1.0
 */
@Mapper
public interface SysUserMapper extends BaseMapper<SysUser> {

    /**
     * 根据用户名查询用户信息
     */
    SysUserVo findByUsername(String username);

    /**
     * 检查用户名是否存在
     * @return 如果用户名存在返回true，否则返回false
     */
    int existsByUsername(String username);

    /**
     * 分页查询用户数据列表
     *
     * @param sysUser  查询参数模型SysUserModel
     * @param page     分页对象Page
     * @return 返回分页查询结果IPage<SysUserVo>
     */
    IPage<SysUserVo> pageDataList(@Param("param") SysUserModel sysUser, Page<SysUserVo> page);

    /**
     * 分页查询回收站中的用户列表
     * @param sysUser  查询参数模型SysUserModel
     * @param page     分页对象Page
     * @return 返回分页查询结果IPage<SysUserVo>
     */
    IPage<SysUserVo> pageRecycleList(@Param("param")SysUserModel sysUser, Page<SysUserVo> page);

    /**
     * 根据用户ID获取回收站中的用户信息
     */
    SysUser getRecycleById(Long userId);

    /**
     * 更新回收站中的用户信息
     */
    void updateRecycleById(SysUser user);

}
